home *** CD-ROM | disk | FTP | other *** search
- '////////////////////////////////////////////////////////////////////////////
- '// vso.vbs
- '// Contains the VbScript code used by vsoinst.htm and Dashboard UI pages
- '// Dependencies: file:subinfodata.vbs,
- '// object:g_localObjOS, object:g_localObjExternal,
- '// object:g_localObjFS, object:g_localObjReg, object:g_localObjInstaller
- '////////////////////////////////////////////////////////////////////////////
- '// Created:
- '// Creator:
- '// Developers: Anand Revashetti, Ramy Eldesoky
- '////////////////////////////////////////////////////////////////////////////
- Option Explicit
- '////////////////////////////////////////////////////////////////////////////////////
- '// Created: 7/24/03
- '// Creator: Ramy Eldesoky
- '////////////////////////////////////////////////////////////////////////////////////
- '// Checks and retruns the VS expiry information. The
- '// bExpired = True if objSubInfo.ExpiryDate is overdue.
- '// bPerpetual = True if objSubInfo.Perpetual is true
- '// bNoDie = True if objAppInfo.No_Die is true
- '////////////////////////////////////////////////////////////////////////////////////
- Function GetVirusScanExpiryInfo( ByRef bExpired, ByRef bPerpetual, ByRef bNoDie)
- '{
- Const sLIC = "{27CDC360-101B-48ff-96F0-8580AD849AAD}"
- Const CLSID_MCSUBMGR = "{9BE8D7B2-329C-442A-A4AC-ABA9D7572602}"
-
- Dim objMcSubMgr, objSubInfo, objAppInfo
-
- GetVirusScanExpiryInfo = true
-
- '// Step 1 create the COM object
- set objMcSubMgr = g_localObjExternal.CreateObject( CLSID_MCSUBMGR, sLIC, True )
-
- if IsValidObject( objMcSubMgr ) then
- '{
- ' Initialize the interface classes global data (SubInfoData.vbs)
- call InitScriptAPI( objMcSubMgr )
-
- call GetAppInfo( CStr("VSO"), "", objAppInfo )
-
- if MCSUBDATA_SUCCESS = GetSubInfo( CStr("VSO"), "", objSubInfo ) and IsValidObject( objSubInfo ) then
- '{
- dim sExpiryDate
-
- sExpiryDate = objSubInfo.ExpiryDate ' returns "YYYYMMDD" date string
-
- if 8 < Len(sExpiryDate) then
- '{
- GetVirusScanExpiryInfo = false
- '}
- else
- '{
- dim expiryDate, curDate
-
- expiryDate = ParseDate( sExpiryDate )
- curDate = FormatDate()
-
- if IsDate( expiryDate ) then
- '{
- If (sExpiryDate - curDate) >= 0 Then
- bExpired = false
- else
- bExpired = true
- End If
- '}
- else
- '{
- GetVirusScanExpiryInfo = false
- '}
- end if
- '}
- end if
-
- bPerpetual = objSubInfo.Perpetual
-
- bNoDie = false
-
- If IsValidObject(objAppInfo) Then
- '{
- if objAppInfo.No_Die = "1" then
- bNoDie = true
- end if
- '}
- end if
-
- call FreeObject( objSubInfo )
- '}
- else
- '{
- GetVirusScanExpiryInfo = false
- '}
- end if
-
- call FreeObject( objAppInfo )
- call DeinitScriptAPI()
- call FreeObject( objMcSubMgr )
- '}
- else
- '{
- GetVirusScanExpiryInfo = false
- '}
- end if
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '// 1 expired (and perpetual and no_die flag is False)
- '// 2 expired (perpetual = true and no_die = false)
- '// 3 expired (perpetual = false and no_die = true)
- '// 4 expired (perpetual = true and no_die = true)
- '////////////////////////////////////////////////////////////////////////////////////
- Function IsVSOExpired()
- '{
- dim bExpired, bPerpetual, bNoDie
-
- IsVSOExpired = 1
-
- if not GetVirusScanExpiryInfo( bExpired, bPerpetual, bNoDie ) then
- exit function ' error case; show the product as expired
- end if
-
- if bExpired then
- '{
- if bPerpetual then
- IsVSOExpired = 2
- if bNoDie then
- IsVSOExpired = 4
- end if
- else
- IsVSOExpired = 1
-
- if bNoDie then
- IsVSOExpired = 3
- end if
- end if
- '}
- else
- '{
- IsVSOExpired = 0
- '}
- end if
- '}
- end function
- '////////////////////////////////////////////////////////////////////////
- '// Checks whether the VSO is perpetual or the application is set to nodie state
- '////////////////////////////////////////////////////////////////////////
- Function WillVSOProductExpire(objAppInfo, objSubInfo)
- '{
- WillVSOProductExpire = True
-
- If IsValidObject(objSubInfo) Then
- '{
- if objSubInfo.Perpetual then
- WillVSOProductExpire = False
- else
- If IsValidObject(objAppInfo) Then
- '{
- if objAppInfo.No_Die = "1" then
- WillVSOProductExpire = False
- end if
- '}
- end if
- end if
- '}
- end if
-
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '// IsVSOEnabled(): Return Values.
- '//
- '// -1: Error Code
- '// 0: Application is not running
- '// 1: Application is running.
- '////////////////////////////////////////////////////////////////////////////////////
- Function IsVSOEnabled()
- '{
- Dim dwState, bTemp
-
- IsVSOEnabled = -1
-
- If not IsValidObject(g_localObjReg) Then
- Exit Function
- End If
-
- bTemp = g_localObjReg.Obfuscate
-
- g_localObjReg.Obfuscate = True
- IsVSOEnabled = CLng(g_localObjReg.RegQueryValue( CStr("HKLM\Software\McAfee.com\Agent\Apps\VSO"), CStr("State") ))
- g_localObjReg.Obfuscate = bTemp
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- Function VsShutdown()
- '{
- Dim eResult
-
- eResult = gobjMcApp.ShutdownEx( AS_CLSID, 2 )
- If 0 = eResult Then
- eResult = 1
- End If
- call VsPrintState( "VsShutdown - Result is process id.", eResult )
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- Function VsPrintState( sOperation, eOperationResult )
- '{
- Dim eResult, NewState
- Dim sMsg
-
- eResult = gobjMcApp.GetState( AS_CLSID, NewState )
- sMsg = "Operation: " & sOperation & " : Result = " & eOperationResult & vbCrLf & _
- "New State: " & NewState & vbCrLf
- VerInfo.innerHTML = "<pre>" & sMsg & "</pre>"
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '//
- '// IsVSO4Installed()
- '//
- '// Return Values:
- '// -2: If VSO is not installed.
- '// -1: Error code.
- '// 0: If Old VSO (3.X) is installed.
- '// 1: If VSO 4 is installed.
- '////////////////////////////////////////////////////////////////////////////////////
- Function IsVSO4Installed( objReg, objOS, objFS )
- '{
- Const CLSID_MCVSSHLD = "{692E988D-1057-4c57-8078-26CF7AE54263}"
-
- Dim eResult
-
- IsVSO4Installed = -1
-
- if not IsValidObject (objOS) then
- Exit Function
- End If
-
- IsVSO4Installed = -2
-
- eResult = objOS.IsObjectInstalled( CLSID_MCVSSHLD, "4,0,0,0" )
-
- Select Case eResult
- '{
- Case 0 '// MCINST_OS_NO_VERSION_INFO
- Exit Function
- Case 1 '// MCINST_OS_OLDER_VERSION_EXISTS
- IsVSO4Installed = 0
- Case 2 '// MCINST_OS_OBJECT_EXISTS
- IsVSO4Installed = 1
- Case 3 '// MCINST_OS_OBJECT_NOT_FOUND
- IsVSO4Installed = -2
- '}
- End Select
- '}
- End Function
- '--------------------------------------------------------------------------------
- ' To Support Retail products in Dashboard, we need to have a set of function
- ' that check for Retail product state (Expired/Enabled/Disabled) etc
- '--------------------------------------------------------------------------------
- '1 = Installed, 0 = Not Installed, -1 = Error
- '--------------------------------------------------------------------------------
- Function IsRetailVSOInstalled()
- '{
- Dim bOldOfuscate, bRetail
-
- If g_localObjReg Is Nothing Then
- IsRetailVSOInstalled = -1
- Exit Function
- End If
-
- bRetail = 0
- bOldOfuscate = g_localObjReg.obfuscate
- g_localObjReg.obfuscate = True
- bRetail = g_localObjReg.RegQueryValue( CStr("HKLM\Software\McAfee.com\Agent\Apps\VSO"), CStr("Retail") )
-
- If 1 = bRetail Then
- IsRetailVSOInstalled = 1
- Else
- IsRetailVSOInstalled = 0
- End If
-
- g_localObjReg.obfuscate = bOldOfuscate
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '// 1 = Expired, 0 = Not Expired
- '////////////////////////////////////////////////////////////////////////////////////
- Function IsRetailVSOExpired()
- '{
- Dim szExpDate
-
- If False = WillVSOProductExpire() Then
- IsRetailVSOExpired = 0
- Exit Function
- End If
-
- If not IsValidObject( g_localObjInstaller ) Then
- IsRetailVSOExpired = 1
- Exit Function
- End If
-
- szExpDate = ""
- g_localObjInstaller.GetExpiryDate "HKLM\Software\McAfee.com\VirusScan Online", "Settings", szExpDate
-
- If Len(szExpDate) <> 8 Then
- IsRetailVSOExpired = 1
- Exit Function
- End If
-
- Dim szExpYear, szExpMonth, szExpDay
- szExpYear = Left( szExpDate, 4 )
- szExpMonth = Mid( szExpDate, 5, 2 )
- szExpDay = Mid( szExpDate, 7, 2)
-
- Dim glExpYear, glExpMonth, glExpDay
-
- glExpYear = CStr( szExpYear )
- glExpMonth = CStr( szExpMonth )
- glExpDay = CStr( szExpDay )
-
- Dim actualExpiryDate
- actualExpiryDate = DateSerial( glExpYear, glExpMonth, glExpDay )
-
- If False = IsDate( actualExpiryDate ) Then
- '{
- 'Tampered Expiry setting
- IsRetailVSOExpired = 1
- Exit Function
- '}
- End If
-
- If DateDiff( "d", Date, actualExpiryDate ) >= 0 Then
- IsRetailVSOExpired = 0
- Else
- IsRetailVSOExpired = 1
- End If
-
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '//
- '// IsRetailVSOEnabled(): Return Values.
- '//
- '// -1: Error Code
- '// 0: Application is not running
- '// 1: Application is running.
- '////////////////////////////////////////////////////////////////////////////////////
- Function IsRetailVSOEnabled()
- '{
- Dim bOldOfuscate, dwState
-
- If g_localObjReg Is Nothing Then
- IsRetailVSOEnabled = -1
- Exit Function
- End If
-
- dwState = 0
-
- bOldOfuscate = g_localObjReg.obfuscate
-
- g_localObjReg.obfuscate = True
-
- dwState = g_localObjReg.RegQueryValue( CStr("HKLM\Software\McAfee.com\Agent\Apps\VSO"), CStr("State") )
-
- If 1 = dwState Then
- IsRetailVSOEnabled = 1
- Else
- IsRetailVSOEnabled = 0
- End If
- g_localObjReg.obfuscate = bOldOfuscate
-
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '// ScanNow()
- '//
- '// -1: Error Code
- '// 0: Application could not be started.
- '// 1: Application is started.
- '////////////////////////////////////////////////////////////////////////////////////
- Function ScanNow()
- '{
- Const CLSID_MCVSSHLD = "{692E988D-1057-4c57-8078-26CF7AE54263}"
-
- Dim sPath
-
- ScanNow = -1
-
- If not IsValidObject( g_localObjOS ) Then
- Exit Function
- End If
-
- If not IsValidObject( g_localObjFS ) Then
- Exit Function
- End If
-
- If g_localObjOS is nothing Or _
- g_localObjFS is nothing Then
- '{
- Exit Function
- '}
- End If
-
- ScanNow = 0
-
- sPath = GetObjectPath( CLSID_MCVSSHLD, g_localObjOS, g_localObjFS )
-
- If "" <> sPath Then
- '{
- sPath = CStr(sPath & "\mcmnhdlr.exe")
- If 0 = g_localObjOS.RunProgram( sPath, CStr(VSO_SCAN_CMD_ARG) ) Then
- ScanNow = 1
- End If
- '}
- End If
- '}
- End Function
- '////////////////////////////////////////////////////////////////////////////////////
- '// TODO: move it to a library module
- '////////////////////////////////////////////////////////////////////////////////////
- Function IsValidObject( myObj )
- '{
- IsValidObject = false
-
- if IsObject( myObj ) then
- if not myObj is nothing then
- IsValidObject = true
- end if
- end if
- '}
- End function
- '////////////////////////////////////////////////////////////////////////////////////
- '// TODO: move it to a library module
- '////////////////////////////////////////////////////////////////////////////////////
- sub FreeObject( ByRef myObj )
- '{
- if IsValidObject( myObj ) then
- set myObj = nothing
- end if
- '}
- End sub
- '////////////////////////////////////////////////////////////////////////////////////
- '// Takes a "yyyymmdd" string and returns Date type
- '// TODO: move it to a library module
- '////////////////////////////////////////////////////////////////////////////////////
- Function ParseDate( sExpDate )
- '{
-
- Dim lExpMonth, lExpDay, lExpYear, dtExpDate
-
- If Len(sExpDate) < 8 Then
- Exit Function
- End If
-
- On Error Resume Next
-
- ParseDate = CDate( Mid( sExpDate, 5, 2 ) & "/" & Mid( sExpDate, 7 ) & "/" & Left( sExpDate, 4 ) )
-
- On Error Goto 0
- '}
- End Function
-
-
- '////////////////////////////////////////////////////////////////////////////////////
- '// Giridhar Desaraju - September 1st, 2004
- '// Formats the Date to "yyyymmdd"
- '////////////////////////////////////////////////////////////////////////////////////
- Function FormatDate()
- '{
- dim sDay, sMonth, sYear
-
- On Error Resume Next
-
- sDay = Day(Date)
- if len(sDay) = 1 Then sDay = "0" & sDay
-
- sMonth = Month(Date)
- if len(sMonth) = 1 Then sMonth = "0" & sMonth
-
- sYear = Year(Date)
- FormatDate = sYear & sMonth & sDay
-
- On Error Goto 0
- '}
- End Function
-
-
- Function IsAdminUser
- '{
- IsAdminUser = false
-
- If not IsValidObject( g_localObjOS ) Then
- Exit Function
- End If
-
- IsAdminUser = g_localObjOS.IsAdministrator()
- '}
- end function
- '// EOF
- '///////////////////////////////////////////////////////////